/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

/**
 *
 * @author Yeezus
 */
@Entity
@Table(name = "PRODUTOSCATALOGOS")
@NamedQueries({
    @NamedQuery(name = "findAllProdutoCatalogos",
    query = "SELECT p FROM ProdutoCatalogo p" + " WHERE p.farmacia.nome = :nome"
    )})
public class ProdutoCatalogo implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    
    @NotNull
    @ManyToOne
    private Produto produto;
    
    @NotNull
    private int quantidade;
    
    @NotNull
    private int limiteCritico;
    
    @NotNull
    @ManyToOne
    private Farmacia farmacia;

    @NotNull
    private String referencia;
    
    public ProdutoCatalogo() {
    }
    //uma farmacia tem tantos produtosCatalogo quanto tipos de produtos diferentes
    public ProdutoCatalogo(String referencia, Produto produto, int quantidade, int limiteCritico, Farmacia farmacia) {
        this.referencia = referencia;
        this.produto = produto;
        this.quantidade = quantidade;
        this.limiteCritico = limiteCritico;
        this.farmacia = farmacia;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    public int getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(int quantidade) {
        this.quantidade = quantidade;
    }

    public int getLimiteCritico() {
        return limiteCritico;
    }

    public void setLimiteCritico(int limiteCritico) {
        this.limiteCritico = limiteCritico;
    }

    public Farmacia getFarmacia() {
        return farmacia;
    }

    public void setFarmacia(Farmacia farmacia) {
        this.farmacia = farmacia;
    }

    public String getReferencia() {
        return referencia;
    }

    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }

}
